/**
 * 外观模式（Faced pattern）：
 *   提供一个统一的接口去访问多个子系统的多个不同接口，为子系统中的一组接口提供统一的高层接口。
 *   使得子系统更加容易使用，不仅简化类中的接口，而且实现调用者和接口的解耦。
 *  
 * 与适配器模式的区别
 *   
 *   适配器模式：1、是将一个对象包装起来改变其接口
 *              2、将接口转化为不同接口 
 *   外观模式：  1、是将一群对象包装起来加以简化其接口
 *              2、提供一个统一接口来简化接口
 */

/**
 * 外观模式的应用：es中模块导入和导出
 */
// a.js
export default {
    getA(params) { 
        //do something
    }
}
//b.js
export default { 
    getB(params) { 
       // do something 
    }
}

// app.js

import A from "./a.js"
import B from "./b.js"
/** * 外观模式为子系统提供统一的高层接口*/
export default {
    A, B
}
// 通过同一接口调用子系统
import app from "./app"
app.A.getA(params)
app.B.getA(params)